package org.boot.wxipad.common.util.http;

import java.io.IOException;

/**
 * @author liyuncong
 * @version 1.0
 * @file RequestExecutor
 * @brief http请求执行器
 * @details http请求执行器，T – 返回值类型 E – 请求参数类型
 * @date 2024-08-09
 *
 * Edit History
 * ----------------------------------------------------------------------------
 * DATE                     NAME               DESCRIPTION
 * 2024-08-09               liyuncong          Created
 */


public interface RequestExecutor<T, E> {

    /**
     * 执行http请求.
     *
     * @param uri  uri
     * @param data 请求数据
     * @return 响应结果
     * @throws IOException ioEx
     */
    T execute(String uri, E data) throws IOException;

    /**
     * 执行http请求.
     *
     * @param uri     uri
     * @param data    请求数据
     * @param handler http响应处理器
     * @throws IOException ioEx
     */
    void execute(String uri, E data, ResponseHandler<T> handler) throws IOException;

}
